%###########%##%%%%%%%############################################%%%
%#####%#####%##%%@**%%%######%##############%%##%####%%############%%
%###%%%%%%%%%%%%%%+-*%%%#####%#####################################%%
%#####+=#%%%%%%@#*%#%%%%%%%########################################%%
%####=..+%%@%@%@%#**%%%%%%%%%%#####################################%%
%###%-.:#%%%#%%@@@@%%%###%##%#####################%%%%%###%%######%%%
%#####*#%#%%%##%%%%%@%*++=*##################%##%%%###########*++*#%%
%#########%##%%##*+=======*##############%#%#***********####*++*#%##%
%####%%%##**++====++*###%********+++=+++=+*++=-::...:=*##*+=+#%#%%##%
%####%#+====++*###%%#-..:#*%*-:--:.    :**=:.....:=*##*+==*#%%%%#%##%
%####%%#####%%%%###**+*++==+--:::%*      . ...:+###*+==+*%%##%######%
%##########%+-:-+-.......-%%-===*%:    .....=###**=-=+#%%%%######%##%
###########-::-##***+....===---##............=##+---################%
*+***+==+%*++++::::+#**%@#....=%-.............:+#*=--***++==+***+***#
-.*+-::=+---*#-::::::.:++:.::=%=.:=-............:+#+--*==:.::=+*.-=+*
---==-+#===+++++*%****#***###*==*#%%+.............-*#+-+-::=-==---::+
:=-===-+*#%**++***#%%*++=+**+*****%#***+=+**=++#*++*%#*==+--=-=-=:--+
==-:=*--=+*#++##==#++*%+=+%=-+%+++%=--+--+%*--=@+--**+=+==--*=:-==--=
-++++----*#+*%#+***+#%=-+%=-=%*++%+--*#--=%=--*%---#+=-------++++---=
=++=**==####@%##@*==%#+*%#******#%***%%**#%***#+---#=------=**=++=*++
*+**#=*=+*##%%%%%%##%%%%%%%%%%%%%%%%%#%%%%*===*+==**--=*===*=#*++*=+*
++%%%#%%%%***###%%%%%%###################%%%%%%%##**#+**#%%##%%%+++=+
#%@@%@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##%@@@@@@@@@@@@@@@%****